package magis;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.swing.*;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.geom.Point2D;
import java.util.*;
import java.awt.Desktop;

/*
 * Madison Automotive Group Information System
 * 
 * Java desktop application providing customer management, sales management,
 * and inventory management
 * 
 * @author Brady White <satara@gmail.com>, 
 *         Dustin Graham <myemail@gmail.com>
 *         Jason Whiting <myemail@gmail.com>
 *         Adam Chavez <myemail@gmail.com>
 *            Section 1
 *            Group 5
 *
 * @version 1.0
 */
public class MainFrame extends javax.swing.JFrame {

    // ListModel for CustomerList
    DefaultListModel customerListModel = new DefaultListModel();

    // For loop to add customers to defaultListModel
    public Map<String, Customer> customers = new HashMap<String, Customer>();

    /** Creates new MainFrame */
    public MainFrame() {
        initComponents();
        center(this);
        startUp();
    }

    /** Center the JFrame */
    public static void center(JFrame frame) {
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        Point center = ge.getCenterPoint();
        Rectangle bounds = ge.getMaximumWindowBounds();
        int w = 550;
        int h = 350;
        int x = center.x - w / 2, y = center.y - h / 2;
        frame.setBounds(x, y, w, h);
        frame.validate();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;

        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        customerListPanel = new javax.swing.JPanel();
        customerListScrollPane = new javax.swing.JScrollPane();
        customerList = new javax.swing.JList();
        jTextField1 = new javax.swing.JTextField();
        customerToolPanel = new javax.swing.JPanel();
        newBtn = new javax.swing.JButton();
        printBtn = new javax.swing.JButton();
        delBtn = new javax.swing.JButton();
        editCustomerPanel = new javax.swing.JPanel();
        CustomerFormPanel = new javax.swing.JPanel();
        numberLbl = new javax.swing.JLabel();
        numberTxt = new javax.swing.JFormattedTextField();
        nameLbl = new javax.swing.JLabel();
        nameTxt = new javax.swing.JFormattedTextField();
        addressLbl = new javax.swing.JLabel();
        addressTxt = new javax.swing.JFormattedTextField();
        cityLbl = new javax.swing.JLabel();
        cityTxt = new javax.swing.JFormattedTextField();
        stateLbl = new javax.swing.JLabel();
        stateTxt = new javax.swing.JFormattedTextField();
        zipCodeLbl = new javax.swing.JLabel();
        zipCodeTxt = new javax.swing.JFormattedTextField();
        phoneLbl = new javax.swing.JLabel();
        phoneTxt = new javax.swing.JFormattedTextField();
        jPanel1 = new javax.swing.JPanel();
        viewAccountsBtn = new javax.swing.JButton();
        saveCustomerBtn = new javax.swing.JButton();
        editCustomerLbl = new javax.swing.JLabel();
        sale = new javax.swing.JPanel();
        customerGroup = new javax.swing.JPanel();
        custName = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        custPhone_lbl = new javax.swing.JLabel();
        saleCarsGroup = new javax.swing.JPanel();
        addCar_btn = new javax.swing.JButton();
        jPanel5 = new javax.swing.JPanel();
        makeDisplay_lbl = new javax.swing.JLabel();
        mileage_lbl = new javax.swing.JLabel();
        listPriceDisplay_lbl = new javax.swing.JLabel();
        mileageDisplay_lbl = new javax.swing.JLabel();
        colorDisplay_lbl = new javax.swing.JLabel();
        model_lbl = new javax.swing.JLabel();
        make_lbl = new javax.swing.JLabel();
        vin_txt = new javax.swing.JTextField();
        color_lbl = new javax.swing.JLabel();
        year_lbl = new javax.swing.JLabel();
        addWarranty_btn = new javax.swing.JButton();
        modelDisplay_lbl = new javax.swing.JLabel();
        yearDisplay_lbl = new javax.swing.JLabel();
        listPrice_lbl = new javax.swing.JLabel();
        jPanel6 = new javax.swing.JPanel();
        monthsDisplay_lbl = new javax.swing.JLabel();
        warrantyMiles_lbl = new javax.swing.JLabel();
        typeDisplay_lbl = new javax.swing.JLabel();
        type_lbl = new javax.swing.JLabel();
        color_lbl1 = new javax.swing.JLabel();
        warrantyCostDisplay_lbl = new javax.swing.JLabel();
        warrantyMilesDisplay_lbl = new javax.swing.JLabel();
        months_lbl = new javax.swing.JLabel();
        addWarranty_btn3 = new javax.swing.JButton();
        salePrice_txt = new javax.swing.JTextField();
        downPayment_txt = new javax.swing.JTextField();
        addWarranty_btn1 = new javax.swing.JButton();
        tradeInsGroup = new javax.swing.JPanel();
        addTradeIn_btn = new javax.swing.JButton();
        usedCarTradeInGroup = new javax.swing.JPanel();
        ti1_makeDisplay_lbl = new javax.swing.JLabel();
        ti1_mileage_lbl = new javax.swing.JLabel();
        ti1_listPriceDisplay_lbl = new javax.swing.JLabel();
        ti1_mileageDisplay_lbl = new javax.swing.JLabel();
        ti11_colorDisplay_lbl = new javax.swing.JLabel();
        ti1_model_lbl = new javax.swing.JLabel();
        ti1_make_lbl = new javax.swing.JLabel();
        ti1_vin_txt = new javax.swing.JTextField();
        ti1_color_lbl = new javax.swing.JLabel();
        ti1_year_lbl = new javax.swing.JLabel();
        ti1_modelDisplay_lbl = new javax.swing.JLabel();
        ti1_yearDisplay_lbl = new javax.swing.JLabel();
        ti1_listPrice_lbl = new javax.swing.JLabel();
        ti1_tradeInValue_txt = new javax.swing.JTextField();
        addWarranty_btn2 = new javax.swing.JButton();
        saleTotals_scrollPane = new javax.swing.JScrollPane();
        saleTotals_jtable = new javax.swing.JTable();
        saveSale_btn = new javax.swing.JButton();
        cancel_btn = new javax.swing.JButton();
        salespersonGroup = new javax.swing.JPanel();
        spName_lbl = new javax.swing.JLabel();
        selectSalesperson_btn = new javax.swing.JButton();
        spId_lbl = new javax.swing.JLabel();
        HeaderPanel = new javax.swing.JPanel();
        projectTitleLbl = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setMinimumSize(new java.awt.Dimension(700, 600));

        jPanel2.setLayout(new java.awt.BorderLayout());

        customerListPanel.setPreferredSize(new java.awt.Dimension(228, 400));
        customerListPanel.setLayout(new java.awt.GridBagLayout());

        customerListScrollPane.setMinimumSize(new java.awt.Dimension(200, 23));
        customerListScrollPane.setPreferredSize(new java.awt.Dimension(169, 325));

        customerList.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        customerList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        customerList.setToolTipText("Select Customer to view their details");
        customerList.setMaximumSize(new java.awt.Dimension(215, 80));
        customerList.setMinimumSize(new java.awt.Dimension(215, 80));
        customerList.setPreferredSize(new java.awt.Dimension(215, 300));
        customerList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                customerListValueChanged(evt);
            }
        });
        customerListScrollPane.setViewportView(customerList);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridheight = 12;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        customerListPanel.add(customerListScrollPane, gridBagConstraints);

        jTextField1.setText("jTextField1");
        jTextField1.setPreferredSize(new java.awt.Dimension(168, 20));
        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
        customerListPanel.add(jTextField1, gridBagConstraints);

        newBtn.setText("New...");
        newBtn.setFocusable(false);
        newBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        newBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        newBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                newBtnActionPerformed(evt);
            }
        });
        customerToolPanel.add(newBtn);

        printBtn.setText("Print");
        printBtn.setFocusable(false);
        printBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        printBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        printBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                printBtnActionPerformed(evt);
            }
        });
        customerToolPanel.add(printBtn);

        delBtn.setText("Delete...");
        delBtn.setFocusable(false);
        delBtn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        delBtn.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        delBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                delBtnActionPerformed(evt);
            }
        });
        customerToolPanel.add(delBtn);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 14;
        customerListPanel.add(customerToolPanel, gridBagConstraints);

        jPanel3.add(customerListPanel);

        jPanel2.add(jPanel3, java.awt.BorderLayout.WEST);

        editCustomerPanel.setBackground(new java.awt.Color(255, 255, 204));
        editCustomerPanel.setLayout(new java.awt.BorderLayout());

        CustomerFormPanel.setBackground(new java.awt.Color(255, 255, 204));
        CustomerFormPanel.setForeground(new java.awt.Color(240, 240, 240));

        numberLbl.setText("Number:");

        numberTxt.setToolTipText("");
        numberTxt.setPreferredSize(new java.awt.Dimension(168, 20));

        nameLbl.setText("Name:");

        nameTxt.setToolTipText("");
        nameTxt.setPreferredSize(new java.awt.Dimension(168, 20));

        addressLbl.setText("Address:");

        addressTxt.setPreferredSize(new java.awt.Dimension(168, 20));

        cityLbl.setText("City:");

        cityTxt.setPreferredSize(new java.awt.Dimension(168, 20));

        stateLbl.setText("State:");

        stateTxt.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("UU")));
        stateTxt.setPreferredSize(new java.awt.Dimension(168, 20));

        zipCodeLbl.setText("Zip Code:");

        zipCodeTxt.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("#####")));
        zipCodeTxt.setPreferredSize(new java.awt.Dimension(168, 20));
        zipCodeTxt.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                zipCodeTxtFocusLost(evt);
            }
        });

        phoneLbl.setText("Phone:");

        phoneTxt.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###-###-####")));
        phoneTxt.setPreferredSize(new java.awt.Dimension(168, 20));

        javax.swing.GroupLayout CustomerFormPanelLayout = new javax.swing.GroupLayout(CustomerFormPanel);
        CustomerFormPanel.setLayout(CustomerFormPanelLayout);
        CustomerFormPanelLayout.setHorizontalGroup(
            CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(numberLbl, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                            .addGap(97, 97, 97)
                            .addComponent(numberTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                        .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(nameLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(addressLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(cityLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(stateLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(zipCodeLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(phoneLbl, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(zipCodeTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(stateTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(cityTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(addressTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(nameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(phoneTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(77, Short.MAX_VALUE))
        );
        CustomerFormPanelLayout.setVerticalGroup(
            CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, CustomerFormPanelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(numberTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(numberLbl))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(nameLbl))
                    .addComponent(nameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(addressLbl))
                    .addComponent(addressTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(cityLbl))
                    .addComponent(cityTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(stateLbl))
                    .addComponent(stateTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(zipCodeLbl))
                    .addComponent(zipCodeTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(CustomerFormPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(CustomerFormPanelLayout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(phoneLbl))
                    .addComponent(phoneTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(189, 189, 189))
        );

        editCustomerPanel.add(CustomerFormPanel, java.awt.BorderLayout.CENTER);

        jPanel1.setBackground(new java.awt.Color(255, 255, 153));
        jPanel1.setMinimumSize(new java.awt.Dimension(240, 33));

        viewAccountsBtn.setText("View Accounts");
        viewAccountsBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                viewAccountsBtnActionPerformed(evt);
            }
        });
        jPanel1.add(viewAccountsBtn);

        saveCustomerBtn.setText("Save Customer");
        saveCustomerBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveCustomerBtnActionPerformed(evt);
            }
        });
        jPanel1.add(saveCustomerBtn);

        editCustomerPanel.add(jPanel1, java.awt.BorderLayout.SOUTH);

        editCustomerLbl.setFont(new java.awt.Font("Tahoma", 1, 14));
        editCustomerLbl.setText("Edit Customer");
        editCustomerPanel.add(editCustomerLbl, java.awt.BorderLayout.PAGE_START);

        jPanel2.add(editCustomerPanel, java.awt.BorderLayout.CENTER);

        jTabbedPane1.addTab("Customer Management", jPanel2);

        customerGroup.setBorder(javax.swing.BorderFactory.createTitledBorder("Customer"));
        customerGroup.setName("customerGroup"); // NOI18N

        custName.setFont(new java.awt.Font("Tahoma", 0, 10));
        custName.setText("Brady White");

        jButton1.setFont(new java.awt.Font("Tahoma", 0, 8));
        jButton1.setText("Select Customer");

        custPhone_lbl.setFont(new java.awt.Font("Tahoma", 0, 10));
        custPhone_lbl.setText("801-361-0903");

        javax.swing.GroupLayout customerGroupLayout = new javax.swing.GroupLayout(customerGroup);
        customerGroup.setLayout(customerGroupLayout);
        customerGroupLayout.setHorizontalGroup(
            customerGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(customerGroupLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(customerGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(customerGroupLayout.createSequentialGroup()
                        .addComponent(custName)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 90, Short.MAX_VALUE)
                        .addComponent(jButton1)
                        .addContainerGap())
                    .addGroup(customerGroupLayout.createSequentialGroup()
                        .addComponent(custPhone_lbl)
                        .addGap(189, 189, 189))))
        );
        customerGroupLayout.setVerticalGroup(
            customerGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(customerGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(customerGroupLayout.createSequentialGroup()
                    .addComponent(custName)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(custPhone_lbl))
                .addComponent(jButton1))
        );

        saleCarsGroup.setBorder(javax.swing.BorderFactory.createTitledBorder("Sale Cars"));
        saleCarsGroup.setName("customerGroup"); // NOI18N

        addCar_btn.setFont(new java.awt.Font("Tahoma", 0, 8));
        addCar_btn.setText("+ Add Car");

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Car"));

        makeDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        makeDisplay_lbl.setText("Dodge");

        mileage_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        mileage_lbl.setText("Mileage:");

        listPriceDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        listPriceDisplay_lbl.setText("$14,500");

        mileageDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        mileageDisplay_lbl.setText("43,000");

        colorDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        colorDisplay_lbl.setText("Red");

        model_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        model_lbl.setText("Model:");

        make_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        make_lbl.setText("Make:");

        vin_txt.setFont(vin_txt.getFont().deriveFont(vin_txt.getFont().getSize()-1f));
        vin_txt.setText("Enter VIN");

        color_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        color_lbl.setText("Color:");

        year_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        year_lbl.setText("Year:");

        addWarranty_btn.setFont(new java.awt.Font("Tahoma", 0, 8));
        addWarranty_btn.setText("+ Add Warranty");

        modelDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        modelDisplay_lbl.setText("Charger");

        yearDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        yearDisplay_lbl.setText("2007");

        listPrice_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        listPrice_lbl.setText("List Price:");

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Warranty"));

        monthsDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        monthsDisplay_lbl.setText("Dodge");

        warrantyMiles_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        warrantyMiles_lbl.setText("Miles:");

        typeDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        typeDisplay_lbl.setText("Extended");

        type_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        type_lbl.setText("Type:");

        color_lbl1.setFont(new java.awt.Font("Tahoma", 0, 9));
        color_lbl1.setText("Cost:");

        warrantyCostDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        warrantyCostDisplay_lbl.setText("$3,000");

        warrantyMilesDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        warrantyMilesDisplay_lbl.setText("50,000");

        months_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        months_lbl.setText("Months:");

        addWarranty_btn3.setFont(new java.awt.Font("Tahoma", 0, 8));
        addWarranty_btn3.setText("- Remove Warranty");

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(type_lbl)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(typeDisplay_lbl))
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(months_lbl)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(monthsDisplay_lbl)))
                        .addGap(33, 33, 33)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(color_lbl1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(warrantyCostDisplay_lbl))
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(warrantyMiles_lbl)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(warrantyMilesDisplay_lbl))))
                    .addComponent(addWarranty_btn3, javax.swing.GroupLayout.Alignment.TRAILING))
                .addContainerGap())
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(type_lbl)
                            .addComponent(typeDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(months_lbl)
                            .addComponent(monthsDisplay_lbl)))
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(color_lbl1)
                            .addComponent(warrantyCostDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(warrantyMiles_lbl)
                            .addComponent(warrantyMilesDisplay_lbl))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(addWarranty_btn3))
        );

        salePrice_txt.setFont(salePrice_txt.getFont().deriveFont(salePrice_txt.getFont().getSize()-1f));
        salePrice_txt.setText("Sale Price");

        downPayment_txt.setFont(downPayment_txt.getFont().deriveFont(downPayment_txt.getFont().getSize()-1f));
        downPayment_txt.setText("Down Payment");

        addWarranty_btn1.setFont(new java.awt.Font("Tahoma", 0, 8));
        addWarranty_btn1.setText("- Remove Car");

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(vin_txt, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanel5Layout.createSequentialGroup()
                            .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel5Layout.createSequentialGroup()
                                    .addComponent(year_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(yearDisplay_lbl))
                                .addGroup(jPanel5Layout.createSequentialGroup()
                                    .addComponent(make_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(makeDisplay_lbl))
                                .addGroup(jPanel5Layout.createSequentialGroup()
                                    .addComponent(model_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(modelDisplay_lbl)))
                            .addGap(33, 33, 33)
                            .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel5Layout.createSequentialGroup()
                                    .addComponent(color_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(colorDisplay_lbl))
                                .addGroup(jPanel5Layout.createSequentialGroup()
                                    .addComponent(mileage_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(mileageDisplay_lbl))
                                .addGroup(jPanel5Layout.createSequentialGroup()
                                    .addComponent(listPrice_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(listPriceDisplay_lbl)))))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup()
                        .addComponent(downPayment_txt, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(salePrice_txt)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addComponent(addWarranty_btn1)
                        .addGap(18, 18, 18)
                        .addComponent(addWarranty_btn)
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                        .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(97, 97, 97))))
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(vin_txt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(addWarranty_btn1)
                    .addComponent(addWarranty_btn))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(year_lbl)
                            .addComponent(yearDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(make_lbl)
                            .addComponent(makeDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(model_lbl)
                            .addComponent(modelDisplay_lbl)))
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(color_lbl)
                            .addComponent(colorDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(mileage_lbl)
                            .addComponent(mileageDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(listPrice_lbl)
                            .addComponent(listPriceDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(downPayment_txt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(salePrice_txt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        javax.swing.GroupLayout saleCarsGroupLayout = new javax.swing.GroupLayout(saleCarsGroup);
        saleCarsGroup.setLayout(saleCarsGroupLayout);
        saleCarsGroupLayout.setHorizontalGroup(
            saleCarsGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(addCar_btn)
            .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 403, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        saleCarsGroupLayout.setVerticalGroup(
            saleCarsGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(saleCarsGroupLayout.createSequentialGroup()
                .addComponent(addCar_btn)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        tradeInsGroup.setBorder(javax.swing.BorderFactory.createTitledBorder("Trade-Ins"));
        tradeInsGroup.setName("customerGroup"); // NOI18N

        addTradeIn_btn.setFont(new java.awt.Font("Tahoma", 0, 8));
        addTradeIn_btn.setText("+ Add Trade-In");

        usedCarTradeInGroup.setBorder(javax.swing.BorderFactory.createTitledBorder("Used Car Trade-In "));

        ti1_makeDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_makeDisplay_lbl.setText("Dodge");

        ti1_mileage_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_mileage_lbl.setText("Mileage:");

        ti1_listPriceDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_listPriceDisplay_lbl.setText("$14,500");

        ti1_mileageDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_mileageDisplay_lbl.setText("43,000");

        ti11_colorDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti11_colorDisplay_lbl.setText("Red");

        ti1_model_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_model_lbl.setText("Model:");

        ti1_make_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_make_lbl.setText("Make:");

        ti1_vin_txt.setFont(ti1_vin_txt.getFont().deriveFont(ti1_vin_txt.getFont().getSize()-1f));
        ti1_vin_txt.setText("Enter VIN");

        ti1_color_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_color_lbl.setText("Color:");

        ti1_year_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_year_lbl.setText("Year:");

        ti1_modelDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_modelDisplay_lbl.setText("Charger");

        ti1_yearDisplay_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_yearDisplay_lbl.setText("2007");

        ti1_listPrice_lbl.setFont(new java.awt.Font("Tahoma", 0, 9));
        ti1_listPrice_lbl.setText("List Price:");

        ti1_tradeInValue_txt.setFont(ti1_tradeInValue_txt.getFont().deriveFont(ti1_tradeInValue_txt.getFont().getSize()-1f));
        ti1_tradeInValue_txt.setText("Trade In Value");

        addWarranty_btn2.setFont(new java.awt.Font("Tahoma", 0, 8));
        addWarranty_btn2.setText("- Remove Trade-In");

        javax.swing.GroupLayout usedCarTradeInGroupLayout = new javax.swing.GroupLayout(usedCarTradeInGroup);
        usedCarTradeInGroup.setLayout(usedCarTradeInGroupLayout);
        usedCarTradeInGroupLayout.setHorizontalGroup(
            usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(ti1_vin_txt, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                            .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                                    .addComponent(ti1_year_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ti1_yearDisplay_lbl))
                                .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                                    .addComponent(ti1_make_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ti1_makeDisplay_lbl))
                                .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                                    .addComponent(ti1_model_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ti1_modelDisplay_lbl)))
                            .addGap(33, 33, 33)
                            .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                                    .addComponent(ti1_color_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ti11_colorDisplay_lbl))
                                .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                                    .addComponent(ti1_mileage_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ti1_mileageDisplay_lbl))
                                .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                                    .addComponent(ti1_listPrice_lbl)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ti1_listPriceDisplay_lbl)))))
                    .addComponent(ti1_tradeInValue_txt, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(addWarranty_btn2)
                .addGap(111, 111, 111))
        );
        usedCarTradeInGroupLayout.setVerticalGroup(
            usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(ti1_vin_txt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(addWarranty_btn2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                        .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ti1_year_lbl)
                            .addComponent(ti1_yearDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ti1_make_lbl)
                            .addComponent(ti1_makeDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ti1_model_lbl)
                            .addComponent(ti1_modelDisplay_lbl)))
                    .addGroup(usedCarTradeInGroupLayout.createSequentialGroup()
                        .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ti1_color_lbl)
                            .addComponent(ti11_colorDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ti1_mileage_lbl)
                            .addComponent(ti1_mileageDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(usedCarTradeInGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ti1_listPrice_lbl)
                            .addComponent(ti1_listPriceDisplay_lbl))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(ti1_tradeInValue_txt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
        );

        javax.swing.GroupLayout tradeInsGroupLayout = new javax.swing.GroupLayout(tradeInsGroup);
        tradeInsGroup.setLayout(tradeInsGroupLayout);
        tradeInsGroupLayout.setHorizontalGroup(
            tradeInsGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(addTradeIn_btn)
            .addComponent(usedCarTradeInGroup, javax.swing.GroupLayout.PREFERRED_SIZE, 314, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        tradeInsGroupLayout.setVerticalGroup(
            tradeInsGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tradeInsGroupLayout.createSequentialGroup()
                .addComponent(addTradeIn_btn)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(usedCarTradeInGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        saleTotals_jtable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        saleTotals_scrollPane.setViewportView(saleTotals_jtable);

        saveSale_btn.setFont(new java.awt.Font("Tahoma", 0, 8));
        saveSale_btn.setText("Save Sale");

        cancel_btn.setFont(new java.awt.Font("Tahoma", 0, 8));
        cancel_btn.setText("Cancel");

        salespersonGroup.setBorder(javax.swing.BorderFactory.createTitledBorder("Salesperson"));
        salespersonGroup.setName("customerGroup"); // NOI18N

        spName_lbl.setFont(new java.awt.Font("Tahoma", 0, 10));
        spName_lbl.setText("Dustin Graham");

        selectSalesperson_btn.setFont(new java.awt.Font("Tahoma", 0, 8));
        selectSalesperson_btn.setText("Select Salesperson");

        spId_lbl.setFont(new java.awt.Font("Tahoma", 0, 10));
        spId_lbl.setText("ADS89D798D7");

        javax.swing.GroupLayout salespersonGroupLayout = new javax.swing.GroupLayout(salespersonGroup);
        salespersonGroup.setLayout(salespersonGroupLayout);
        salespersonGroupLayout.setHorizontalGroup(
            salespersonGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(salespersonGroupLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(salespersonGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, salespersonGroupLayout.createSequentialGroup()
                        .addComponent(spName_lbl)
                        .addGap(85, 85, 85)
                        .addComponent(selectSalesperson_btn))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, salespersonGroupLayout.createSequentialGroup()
                        .addComponent(spId_lbl)
                        .addGap(182, 182, 182))))
        );
        salespersonGroupLayout.setVerticalGroup(
            salespersonGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(salespersonGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(salespersonGroupLayout.createSequentialGroup()
                    .addComponent(spName_lbl)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(spId_lbl))
                .addComponent(selectSalesperson_btn))
        );

        javax.swing.GroupLayout saleLayout = new javax.swing.GroupLayout(sale);
        sale.setLayout(saleLayout);
        saleLayout.setHorizontalGroup(
            saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(saleLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(saleLayout.createSequentialGroup()
                        .addComponent(customerGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(salespersonGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, saleLayout.createSequentialGroup()
                            .addComponent(cancel_btn)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(saveSale_btn))
                        .addGroup(saleLayout.createSequentialGroup()
                            .addGroup(saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(saleCarsGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(tradeInsGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(saleTotals_scrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 203, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        saleLayout.setVerticalGroup(
            saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(saleLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(salespersonGroup, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(customerGroup, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(saleLayout.createSequentialGroup()
                        .addComponent(saleCarsGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(tradeInsGroup, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(saleLayout.createSequentialGroup()
                        .addGap(39, 39, 39)
                        .addComponent(saleTotals_scrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 345, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(saleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(saveSale_btn)
                    .addComponent(cancel_btn))
                .addGap(93, 93, 93))
        );

        jTabbedPane1.addTab("Sale", sale);

        getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER);

        HeaderPanel.setPreferredSize(new java.awt.Dimension(100, 50));

        projectTitleLbl.setFont(new java.awt.Font("Tahoma", 0, 18));
        projectTitleLbl.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        projectTitleLbl.setText("Madison Automotive Group");
        projectTitleLbl.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        projectTitleLbl.setPreferredSize(new java.awt.Dimension(431, 22));
        HeaderPanel.add(projectTitleLbl);

        jLabel1.setText("Section 1 - Group 5");
        HeaderPanel.add(jLabel1);

        getContentPane().add(HeaderPanel, java.awt.BorderLayout.PAGE_START);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /** ValueChanged handler */
    private void customerListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_customerListValueChanged
        try {
            populateEditCustomerData(getSelectedCustomer());
        } catch (Exception e) {
            // its ok... really.
        }
    }//GEN-LAST:event_customerListValueChanged
    /** saveCustomerBtn ActionPerformed handler */
    private void saveCustomerBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveCustomerBtnActionPerformed
        // Check to see if the user selected a customer before we let them save data.
        try {
            getSelectedCustomer();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Select a customer before saving data.", "Select a Customer", JOptionPane.OK_OPTION);
        }

        // They have selected a customer, let them save their data.
        if (validateData()) {
            saveCustomerData();
        }
    }//GEN-LAST:event_saveCustomerBtnActionPerformed

    private void newBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_newBtnActionPerformed
        // Add a new customer to the list, update the model from fire!!!!
        addNewCustomer();
    }//GEN-LAST:event_newBtnActionPerformed
    /** delBtn Handler */
    private void delBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_delBtnActionPerformed
        // Delete Customer
        deleteCustomer(getSelectedCustomer());
    }//GEN-LAST:event_delBtnActionPerformed

    private void viewAccountsBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewAccountsBtnActionPerformed
        //new AccountsFrame(getSelectedCustomer()).setVisible(true);
    }//GEN-LAST:event_viewAccountsBtnActionPerformed

    private void printBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_printBtnActionPerformed
        printAllCustomerActivity();
    }//GEN-LAST:event_printBtnActionPerformed

    private void zipCodeTxtFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_zipCodeTxtFocusLost
    }//GEN-LAST:event_zipCodeTxtFocusLost

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextField1ActionPerformed

    /**
     * Validate all customer editing inputs
     * @return success if validation went through successfully
     */
    private boolean validateData() {
        List<String> validationErrors = new ArrayList();
        String newError = "";

        // Validate Customer Number
        if (!numberTxt.getText().matches("\\w\\d*")) {
            newError = "Customer number must have a word character, then a sequence of numbers";
            validationErrors.add(newError);
        }

        // Validate Name
        if (!nameTxt.getText().matches("[\\w|\\s]+")) {
            newError = "Full Name must be word characters.";
            validationErrors.add(newError);
        }

        // Validate Address
        if (!addressTxt.getText().matches("[\\w|\\s]+")) {
            newError = "Address is not correct.";
            validationErrors.add(newError);
        }

        // Validate City
        if (!cityTxt.getText().matches("\\w+")) {
            newError = "City must be word characters.";
            validationErrors.add(newError);
        }

        // Validate State
        if (!stateTxt.getText().matches("\\w{2}")) {
            newError = "State must be 2 word characters.";
            validationErrors.add(newError);
        }

        // Validate Zip Code
        if (!zipCodeTxt.getText().matches("\\d{5}")) {
            newError = "Zip code must be exactly 5 digits";
            validationErrors.add(newError);
        }

        // Validate Phone Number
        if (!phoneTxt.getText().matches("[1-9]\\d{2}-[1-9]\\d{2}-\\d{4}")) {
            newError = "Phone must be 10 digits";
            validationErrors.add(newError);
        }

        // If no errors, return true, else print out errors in a JOptionPane
        if (validationErrors.size() == 0) {
            return true;
        } else {
            String errors = "";
            for (String e : validationErrors) {
                errors += e + "\n";
            }
            JOptionPane.showMessageDialog(this, errors, "Validation Errors", JOptionPane.OK_OPTION);

            return false;
        }
    }

    /**
     * Delete a selected customer from the customers map
     */
    private void deleteCustomer(Customer c) {
        customers.remove(c.getName());
        validateCustomerList();
    }

    /**
     * Add a new customer to the customers map
     */
    private void addNewCustomer() {
        String newName = "";
        int iterator = 1; // added onto default name if we create multiple new users.

        // Check to see if we have a customer with the same name as our default name:
        while (customerListModel.contains(Customer.DEFAULT_NAME + " " + iterator)) {
            iterator++;
        }

        // Creates the newName... i.e. "Name 1"
        newName = Customer.DEFAULT_NAME + " " + iterator;

        // Create the new Customer
        Customer c = new Customer(generateCustomerNumber(), newName, "Address", "City", "State", "Zip", "Phone");

        // Add the customer to the customers map
        customers.put(c.getName(), c);

        // Add the customer to the listModel
        customerListModel.addElement(c.getName());

        // Set the selectedIndex to the last visible index.
        customerList.setSelectedIndex(customerList.getLastVisibleIndex());
    }

    /** Generate a customer number from a random number */
    private String generateCustomerNumber() {
        String customerNumber = "C" + Math.round(Math.random() * 10000);
        return customerNumber;
    }

    /**
     * Gets the customer based on what item is selected in customerList
     * @return Customer currently selected in list
     */
    private Customer getSelectedCustomer() {
        String customerName = (String) customerListModel.get(customerList.getSelectedIndex());
        Customer displayCustomer = customers.get(customerName);
        return displayCustomer;
    }

    /**
     * Populate text fields with customer data
     * @param c Customer to populate their date
     */
    private void populateEditCustomerData(Customer c) {
        numberTxt.setText(c.getNumber());
        nameTxt.setText(c.getName());
        addressTxt.setText(c.getAddress());
        cityTxt.setText(c.getCity());
        stateTxt.setText(c.getState());
        zipCodeTxt.setText(c.getZipCode());
        phoneTxt.setText(c.getPhone());
    }

    /**
     * Save the newly input customer data to the customer object.
     * Prompt the user and tell them it was successful.
     */
    private void saveCustomerData() {
        Customer c = getSelectedCustomer();
        Boolean replaceCustomer = false;  // flag to know if the customer name changed.

        // If the user changed the name of the customer, we need to replace the customer in the customers
        // map because we use the person's name as the key.
        if (nameTxt.getText() != c.getName()) {
            customers.remove(c.getName());
            replaceCustomer = true;
        }

        // Get text from all the text fields and save it to the customer.
        c.setNumber(numberTxt.getText());
        c.setName(nameTxt.getText());
        c.setAddress(addressTxt.getText());
        c.setCity(cityTxt.getText());
        c.setState(stateTxt.getText());
        c.setZipCode(zipCodeTxt.getText());
        c.setPhone(phoneTxt.getText());

        // Add customer back to customers map with new key
        if (replaceCustomer) {
            customers.put(c.getName(), c);
        }

        // Redraw the customer list.
        validateCustomerList();

        // Tell user the customer was successfully saved
        JOptionPane.showMessageDialog(this, "Customer data was successfully saved.", "Customer Save Success", JOptionPane.PLAIN_MESSAGE);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }

    /** Main uses startUp to execute.  Keeps constructor clean. */
    public void startUp() {
        //setUpBank();
        validateCustomerList();
    }

    /**
     * Populate customerList and assigns the model.
     */
    private void validateCustomerList() {
        // Clear all elements in model
        customerListModel.removeAllElements();

        // For each loop to add all customers to the customerListModel
        for (Customer c : customers.values()) {
            customerListModel.addElement(c.getName());
        }

        // TODO: Sort Alphabetically

        // TODO: Allow CustomerList scrollBar to update.

        // Assign customerListModel to customerList
        customerList.setModel(customerListModel);

        // Select the first item in the list.
        customerList.setSelectedIndex(customerList.getLastVisibleIndex());
    }

    /**
     * Sets up the bank with default customers, accounts, and some transactions.
     */
    /*
    private void setUpBank() {
        // create initial customers, accounts, and add initial transactions
        Customer c1 = new Customer("A1234",
                "Brady White",
                "276 East 340 South",
                "Orem",
                "UT",
                "84058",
                "8013610903");

        Customer c2 = new Customer("A1235",
                "Kellie Goff",
                "516 North 720 East",
                "Provo",
                "UT",
                "84606",
                "8016430103");

        // Add new customers to customers hashmap
        customers.put(c1.getName(), c1);
        customers.put(c2.getName(), c2);

        // Create First Customer's Accounts
        Account a1 = new Account(c1, "A12313", Account.CHECKING_ACCOUNT, 0, 120);
        Account a2 = new Account(c1, "A12455", Account.SAVINGS_ACCOUNT, 2.75, 5000);

        // Create Second Customer's Accounts
        Account a3 = new Account(c2, "A98760", Account.CHECKING_ACCOUNT, 0, 10000);
        Account a4 = new Account(c2, "A53845", Account.SAVINGS_ACCOUNT, 3.25, 25000);

        // do some fun transactions on the objects and print each one
        Transaction t1 = new Transaction(a1, Transaction.DEPOSIT, 150, Calendar.getInstance().getTime(), "Check #152 - Sold iPod");
        Transaction t2 = new Transaction(a2, Transaction.WITHDRAWAL, 150000, Calendar.getInstance().getTime(), "New House");
        Transaction t3 = new Transaction(a4, Transaction.DEPOSIT, 150, Calendar.getInstance().getTime(), "Groceries");
        Transaction t4 = new Transaction(a2, Transaction.WITHDRAWAL, 350, Calendar.getInstance().getTime(), "Rent");
    }
*/
    /**
     * Prints all cutomser activity.
     * User selects an HTML file and a FileWriter writes all the bank information to this file.
     * Iterates through all customers and their accounts.
     * Opens the web browser and displays the .html file that was just written.
     */
    private void printAllCustomerActivity() {
        try {
            // Instantiate FileChooser
            JFileChooser fc = new JFileChooser("BankReport.html");

            // Only allow the selection of .htm or .html files to save to.
            FileNameExtensionFilter filter = new FileNameExtensionFilter(
                    "HTML Documents (.htm, .html)", "htm", "html");
            fc.setFileFilter(filter);

            // Set default name to "BankReport.html";
            fc.setSelectedFile(new File("BankReport.html"));

            // Show the saveDialog
            int returnVal = fc.showSaveDialog(this);

            // Get the selected file
            File selFile = fc.getSelectedFile();

            // Create the PrintWriter to start writing the HTML file.
            PrintWriter out = new PrintWriter(new FileWriter(selFile));
            out.println("<html>");
            out.println("<head>");
            out.println("   <title>I SYS 403:Bank GUI by Brady White - Section 1 - Group 5</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Bank of Brady White</h1>");
            out.println("<h2>All Current Customer Information and Balances</h2>");
            out.println("<hr />");

            // Foreach loop to go through each customer and prints their information      
            for (Customer customer : customers.values()) {
                customer.printAllCustomerInformation(out);
            }

            // Print all transaction that occured during this session:
            TransactionLog.getInstance().printAllTransactions(out);

            // Close the PrintWriter
            out.println("</body>");
            out.close();

            // Show saved file in web browser.
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                Desktop.getDesktop().open(selFile);
            }

        } catch (Exception e) {
            // Show eerror if there was one.
            JOptionPane.showMessageDialog(this, "Unable to print to HTML file, try again.", "Failure to Save HTML", JOptionPane.OK_OPTION);
        }
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel CustomerFormPanel;
    private javax.swing.JPanel HeaderPanel;
    private javax.swing.JButton addCar_btn;
    private javax.swing.JButton addTradeIn_btn;
    private javax.swing.JButton addWarranty_btn;
    private javax.swing.JButton addWarranty_btn1;
    private javax.swing.JButton addWarranty_btn2;
    private javax.swing.JButton addWarranty_btn3;
    private javax.swing.JLabel addressLbl;
    private javax.swing.JFormattedTextField addressTxt;
    private javax.swing.JButton cancel_btn;
    private javax.swing.JLabel cityLbl;
    private javax.swing.JFormattedTextField cityTxt;
    private javax.swing.JLabel colorDisplay_lbl;
    private javax.swing.JLabel color_lbl;
    private javax.swing.JLabel color_lbl1;
    private javax.swing.JLabel custName;
    private javax.swing.JLabel custPhone_lbl;
    private javax.swing.JPanel customerGroup;
    private javax.swing.JList customerList;
    private javax.swing.JPanel customerListPanel;
    private javax.swing.JScrollPane customerListScrollPane;
    private javax.swing.JPanel customerToolPanel;
    private javax.swing.JButton delBtn;
    private javax.swing.JTextField downPayment_txt;
    private javax.swing.JLabel editCustomerLbl;
    private javax.swing.JPanel editCustomerPanel;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JLabel listPriceDisplay_lbl;
    private javax.swing.JLabel listPrice_lbl;
    private javax.swing.JLabel makeDisplay_lbl;
    private javax.swing.JLabel make_lbl;
    private javax.swing.JLabel mileageDisplay_lbl;
    private javax.swing.JLabel mileage_lbl;
    private javax.swing.JLabel modelDisplay_lbl;
    private javax.swing.JLabel model_lbl;
    private javax.swing.JLabel monthsDisplay_lbl;
    private javax.swing.JLabel months_lbl;
    private javax.swing.JLabel nameLbl;
    private javax.swing.JFormattedTextField nameTxt;
    private javax.swing.JButton newBtn;
    private javax.swing.JLabel numberLbl;
    private javax.swing.JFormattedTextField numberTxt;
    private javax.swing.JLabel phoneLbl;
    private javax.swing.JFormattedTextField phoneTxt;
    private javax.swing.JButton printBtn;
    private javax.swing.JLabel projectTitleLbl;
    private javax.swing.JPanel sale;
    private javax.swing.JPanel saleCarsGroup;
    private javax.swing.JTextField salePrice_txt;
    private javax.swing.JTable saleTotals_jtable;
    private javax.swing.JScrollPane saleTotals_scrollPane;
    private javax.swing.JPanel salespersonGroup;
    private javax.swing.JButton saveCustomerBtn;
    private javax.swing.JButton saveSale_btn;
    private javax.swing.JButton selectSalesperson_btn;
    private javax.swing.JLabel spId_lbl;
    private javax.swing.JLabel spName_lbl;
    private javax.swing.JLabel stateLbl;
    private javax.swing.JFormattedTextField stateTxt;
    private javax.swing.JLabel ti11_colorDisplay_lbl;
    private javax.swing.JLabel ti1_color_lbl;
    private javax.swing.JLabel ti1_listPriceDisplay_lbl;
    private javax.swing.JLabel ti1_listPrice_lbl;
    private javax.swing.JLabel ti1_makeDisplay_lbl;
    private javax.swing.JLabel ti1_make_lbl;
    private javax.swing.JLabel ti1_mileageDisplay_lbl;
    private javax.swing.JLabel ti1_mileage_lbl;
    private javax.swing.JLabel ti1_modelDisplay_lbl;
    private javax.swing.JLabel ti1_model_lbl;
    private javax.swing.JTextField ti1_tradeInValue_txt;
    private javax.swing.JTextField ti1_vin_txt;
    private javax.swing.JLabel ti1_yearDisplay_lbl;
    private javax.swing.JLabel ti1_year_lbl;
    private javax.swing.JPanel tradeInsGroup;
    private javax.swing.JLabel typeDisplay_lbl;
    private javax.swing.JLabel type_lbl;
    private javax.swing.JPanel usedCarTradeInGroup;
    private javax.swing.JButton viewAccountsBtn;
    private javax.swing.JTextField vin_txt;
    private javax.swing.JLabel warrantyCostDisplay_lbl;
    private javax.swing.JLabel warrantyMilesDisplay_lbl;
    private javax.swing.JLabel warrantyMiles_lbl;
    private javax.swing.JLabel yearDisplay_lbl;
    private javax.swing.JLabel year_lbl;
    private javax.swing.JLabel zipCodeLbl;
    private javax.swing.JFormattedTextField zipCodeTxt;
    // End of variables declaration//GEN-END:variables
}
